<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>    
    <title>Convertir un video a THP</title>    
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link href="../../styles.css" rel="stylesheet">
    <link rel="icon" href="../../images/icon.png">
	</head>
	<body>
		<div id="top">
      <h1>Convertir un video a THP</h1> 
		</div>
    <div id="main">
      <h2>Contenido</h2>
      <div class="contents">
        <ol>
          <li><a href="#tools">Herramientas</a></li>
          <li><a href="#steps">Pasos</a></li>
        </ol>
      </div>
      <h2 id="tools">Herramientas</h2>
      <div class="contents">
        <ul>
          <li>ffmpeg</li>
          <li>THPConv.exe (con dsptool.dll) o THPConv (para Linux)</li>
          <li>VLC Media Player (para reproducir archivos THP)</li>
          <li>Wine (para Linux)</li>
        </ul>
      </div>
      <h2 id="steps">Pasos</h2>
      <div class="contents">
        <p>Abre una ventana de comandos en donde se encuentre el video que quieres convertir:</p>
        <div class="code_block">
          <p>camino\a\ffmpeg.exe -i [Video de entrada] -vf scale="[Ancho]:[Alto]" -r [fps] [Video temporal]</p>
        </div>
        <ul>
          <li><code>[Video temporal]</code> es el video de tu preferencia a convertir. Puede ser cualquier formato que soporte ffmpeg.</li>
          <li><code>[Ancho]</code> es el valor num&eacute;rico del ancho del <code>[Video temporal]</code> en pixeles. No puede exceder los 672 pixeles.</li>
          <li><code>[Alto]</code> es el valor num&eacute;rico del alto del <code>[Video temporal]</code> en pixeles. No hay restricci&oacute;n en este valor.</li>
          <li><code>[fps]</code> es el valor num&eacute;rico de los cuadros por segundo (frames per second)  del <code>[Video temporal]</code>. Este valor puede ir desde <b>1.0</b> a <b>59.94</b>.</li>
        </ul>
        <img src="../../images/basic8/steps1.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 1: Crear video temporal</p>        
        <p><b>Notas:</b></p>       
        <ul>
          <li>Toda la informaci&oacute;n extra&iacute;da es de los documentos del SDK del Wii (ve el link de descarga de THPConv).</p>
          <li>SMG usa 59.94 fps y 640x368 para todos sus videos THP en la carpeta <code>MovieData</code>. Usa <code>camino\a\ffmpeg.exe -i [Video THP]</code> para verlo por tu cuenta.</p>
          <li>Si usas diferentes valores que los mencionados arriba,el video en SMG se reproducir&aacute; <b>m&aacute;s lento o m&aacute;s r&aacute;pido</b> pero no a su velocidad normal.</p>
          <li>Puedes usar diferentes valores de alto y ancho para tu video pero asegurate de que cumplan con las reglas dichas arriba y que las dimensiones sean multiplos de 16.</p>
          <li>Para tener una mejor resoluci&oacute;n en el video THP final, puedes usr las siguientes opciones en el comando de arriba <code>-preset veryslow -b:v 21M</code> (el tama&ntilde;o del archivo aumentar&aacute; mucho ya que <code>-b:v</code> establece el bitraje del video temporal). <code>21M</code> fue seleccionado por los bitrajes de los videos originales THP de SMG (puedes seleccionar el bitraje que quieras, el sufijo <code>M</code> significa <b>megabyte</b>).</p>     
        </ul>
        <br>
        <p>Crea una carpeta llamada <code>temp</code> y escribe el siguiente comando (<b>Figs. 2 and 3</b>):</p>
        <br>
        <div class="code_block">         
          <p>camino\a\ffmpeg.exe -i [Video temporal] temp\output%03d.jpg</p>
        </div>
        <br>
        <p>Esto va a volcar todos los cuadros del video temporal en archivos JPG en la carpeta <code>temp</code>.</p>
        <img src="../../images/basic8/steps2.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 2</p>
        <img src="../../images/basic8/steps3.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 3</p>
        <p><b>Notas:</b></p>
        <ul>
          <li>JPG o JPEG pueden ser usadas, la &uacute;nica restricci&oacute;n que dice la documentaci&oacute;n de THPConv es que dichos archivos tienen que estar en el formato baseline DCT (ffmpeg automaticamente aplica este formato).</p>
          <li>El n&uacute;mero m&iacute;nimo de cuadros que un video THP puede tener sin romper el juego es de 21. Probado con <code>PrologueA.thp</code> en Riivolution.</p>
          <li>Bajos valores de alto y ancho para el video THP (16x16 por ejemplo) har&aacute; que se puedan ver rectagulos azules en la pantalla cuando se reproduzca el video en el juego (consola). Lo prob&eacute; pocas veces, y no s&eacute; si sucede todo el tiempo.</p>
          <li>Para obtener una resoluci&oacute;n de video similar a la del video temporal en tu video THP puedes usar esta opci&oacute;n con ffmpeg al crear los archivos JPG: <code>-q:v 1</code>.</p>
        </ul>
        <br>
        <p>Ahora, para obtener la parte de audio del video ejecuta:</p>
        <div class="code_block">
          <p>camino\a\ffmpeg.exe -i [Video temporal] -acodec pcm_s16le -ar 32000 [Audio WAV].wav</p>
        </div>
        <ul>
          <li><code>[Audio WAV]</code> es el nombre del archivo de audio WAV para usar con THPConv.</li>
        </ul>
        <br>
        <p>Esto convertir&aacute; el audio del video temporal en un audio WAV usando el formato pcm_s16le.</p>
        <img src="../../images/basic8/steps4.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 4</p>
        <p><b>Notas:</b></p>
        <ul>
          <li>Audios WAV son el &uacute;nico formato de audio que THPConv acepta. Espec&iacute;ficamente los que tienen <i>datos no comprimidos de 16 bits</i>.</li>
          <li>Los audios WAV pueden estar en mono o estereo. Ambos modos son soportados por THPConv.</li>
          <li>La opci&oacute;n <code>-ar 32000</code> establece la frecuencia del audio WAV. 32000 Hz es necesario para los audios de SMG ya que distintas frecuencias hacen que el audio suene m&aacute;s agudo o grave en el juego.</li>
        </ul>
        <br>
        <p>Finalmente, para obtener el video THP se ejecuta:</p>
        <div class="code_block">
          <p>camino\a\THPConv.exe -j temp\output*.jpg -s [Audio WAV].wav -r 59.94 -d [Video THP].thp -v</p>
        </div>
        <img src="../../images/basic8/steps5.jpg" alt="Image could not be loaded.">
        <p class="idtext">Fig. 5</p>
        <p><b>Notas:</b></p>
        <ul>
          <li>La opci&oacute;n <code>-j</code> se usa para seleccionar los archivos JPG/JPEG secuenciales que ser&aacute;n usados en el video THP.</li>
          <li>La opci&oacute;n <code>-s</code> se usa para seleccionar el audio WAV a ser usado en el video (opcional).</li>
          <li>La opci&oacute;n <code>-r</code> se usa para establecer el n&uacute;mero de cuadros por segundo del video THP. Si quieres que el video se reproduzca normalmente en SMG, usa 59.94. Si se omite esta opci&oacute;n se establecer&aacute; este valor a 29.97.</li>
          <li>La opci&oacute;n <code>-d</code> se usa para establecer el nombre y direcci&oacute;n de archivo THP a crear.</li>
          <li>La opci&oacute;n <code>-v</code> se usa para imprimir m&aacute;s informaci&oacute;n a la terminal mientras THPConv esta creando el video (opcional).</li>
          <li>Para ver la descripci&oacute;n de estos comandos puedes ver <a href="https://ia802803.us.archive.org/view_archive.php?archive=/32/items/WiiDevelopmentPackage/wii_development_package.zip">siguiente enlace</a>.</li>
        </ul>
        <br>
        <p>Ahora puedes reemplazar el archivo THP con el que quieras del juego y probar el video directamente!</p>
        <br>
        <p><b>Notas:</b></p>
        <ul>
          <li>Puedes usar VLC Media Player para ver los videos THP as&iacute; como tambi&eacute;n convertir los videos THP a otro formato usando ffmpeg (no puedes convertir videos a THP directamente con ffmpeg).</p>
          <li>Cuando pruebes los videos THP en consola, es mejor no usar Riivolution sino reemplazar los archivos directamente en el archivo WBFS/ISO del juego. Esto es debido a que Riivolution parece no poder manejar estos archivos correctamente (por su tama&ntilde;o pienso yo). El video no puede reproducirse a la velocidad normal y/o el juego deja de funcionar.</p>
        </ul>
        <br>
        <p>Gracias a <b>Lord-Giganticus</b> por su gu&iacute;a y a <b>EmilyTheDemon</b> por su entusiasmo.</p>
      </div>
		</div>
	</body>
</html>
